home *** CD-ROM | disk | FTP | other *** search
- #ifndef LIST_INCLUDED
- #define LIST_INCLUDED
-
- typedef struct list_entry
- {
- struct list_entry *prev; /*+ Pointer to previous entry +*/
- struct list_entry *next; /*+ Pointer to next entry +*/
- void *data; /*+ Pointer to data item associated with this entry +*/
- } ListEntry;
-
- typedef struct
- {
- ListEntry *head; /*+ Pointer to Entry at Head of List +*/
- ListEntry *tail; /*+ Pointer to Entry at Tail of List +*/
- ListEntry *current; /*+ Pointer to current Entry in List +*/
- ListEntry *prev; /*+ Pointer to next entry following current +*/
- ListEntry *next; /*+ Pointer to next entry following current +*/
- } List;
-
- List *ListCreate (void);
- int ListFree (List *list, void (*func)());
- int ListAddHead (List *list, void *data);
- int ListAddTail (List *list, void *data);
- List *ListMerge (List *list1, List *list2);
- void ListSort (List *list, int (*func)());
- int ListReset (List *list);
- int ListTraverse (List *list, void **entry);
- int ListTraverseBck (List *list, void **entry);
- int ListDeleteEntry (List *list);
- int ListInsertBefore (List *list, void *data);
- int ListInsertAfter (List *list, void *data);
- int ListSwapEntry (List *list);
-
- #endif
-